
This file contains some answers to frequently asked questions about
PKZIP 2.0, and hints for most efficient use of the software.


Q:  Is PKZIP and PKUNZIP completely compatible with older versions?

A:  PKZIP and PKUNZIP are completely downwardly compatible, but not
    upwardly.  What does this mean?  This means that if you compress
    something with PKZIP 2.0, you will need PKUNZIP 2.0 or later to
    extract it.  However, PKUNZIP 2.0 will uncompress any .ZIP file
    made by any version of PKZIP 2.0 or earlier.  Therefore, If you
    have the latest version of PKUNZIP, you need not worry about not
    being able to decompress any .ZIP file.


Q:  I get "Warning, I don't know how to handle" when trying to extract
    files.

A:  Most likely you are using PKUNZIP 1.1 or an earlier version to
    attempt to extract a .ZIP file created by PKZIP 2.0 or later.
    Make sure that you are using the latest version of PKUNZIP. Also
    be sure you do not have multiple copies of pkunzip in different
    areas on your machine. It may find and use an older version before 
    it finds the newer version.


Q:  How do I make self-extracting files?

A:  This is a two step process.  First create a .ZIP file normally
    with PKZIP, and then use ZIP2EXE to create a self extracting
    .EXE file.  For example, if you have a .ZIP file called STUFF.ZIP
    and then entered:
    
      zip2exe stuff
      
    it would create STUFF.EXE which is a PKSFX self-extracting file.


Q:  I get "Bad command or File name" when I type in PKZIP or PKUNZIP.

A:  This is a DOS error message, and means that PKZIP/PKUNZIP is
    not in the current directory, or locatable by the DOS PATH
    variable.  Consult your DOS manual for use of the PATH statement.


Q:  I get "Error in zip, use pkzipfix", when attempting to compress
    files.

A:  This may be the result of an incorrect command line.  The name of
    the .ZIP file you are creating needs to be BEFORE the names of the
    file you want to compress.  For example, if you want to compress
    FILE1 and FILE2 into STUFF.ZIP, use:
    
      pkzip stuff file1 file2
    
    and not:
    
      pkzip file1 file2 stuff
   


Q:  How can I use PKZIP to create full and incremental backups?

A:  When creating a full backup with PKZIP, use the -a+ option.
    This will turn off the file's archive bit after it is compressed.
    For example:

      C:\> pkzip a:fullback -&s -a+

    will backup the entire C: drive to a multi-disk .ZIP file called 
    FULLBACK.ZIP on the A: drive.

    Then, whenever a file is updated or created by DOS, it will turn
    on the file's archive bit, indicating that the file has changed
    since it was last backed up.  You can create an incremental backup
    set with PKZIP by using the -i switch to only compress files that
    have their archive bit set, and turn off the archive bit after it
    is compressed.  For example:

      C:\> pkzip a:incback1 -&s -i

    will backup all the files on drive C: that are new or have been
    modified since the last backup was performed.


Q:  What is an AV?

A:  The Authenticity Verification feature allows you to create .ZIP
    files that PKUNZIP or PKSFX can test for authenticity while
    extracting.  This provides for detection of tampered, hacked, or
    virus infected files.


Q:  How do I use my AV?  Where is my AV?

A:  The first thing you need to do is fill out AUTHVERI.FRM included
    in the PKZIP distribution package with the necessary information
    and mail or FAX this to PKWARE.  We will then process your
    information and send you back the information needed to use with
    the PUTAV to install your AV information.  AV numbers are not the
    same as your serial number on the diskette.


Q:  I ran PUTAV.EXE on the new PKZIP but it did not work, Why?

A:  First of all, you need to make sure that you are using the
    PUTAV.EXE from the registered 2.0 version.  You can not use
    the PUTAV.EXE from 1.1, to try and install the AV numbers into
    version 2.0 of PKZIP.  The AV process has changed and you need to
    use the PUTAV.EXE from version 2.0.  Also, PUTAV.EXE will not work
    with the shareware version of PKZIP.EXE, you need to have the
    registered PKZIP.EXE file.


Q:  I extracted a .ZIP file, but it didn't recreate the directory
    structure stored in the .ZIP file.

A:  First make sure the files were compressed using the -rp option
    in PKZIP.  Next, be sure you use the PKUNZIP option -d when 
    extracting files.  The -d option tells PKUNZIP to re-create stored
    directories on extraction.


Q:  I lost the last diskette, or have errors on the last diskette
    in my backup set; or lost or have problems with one or more other
    diskettes in my backup set; or I hit Ctrl C and aborted PKZIP
    while I was creating the backup set.  How can I recover the files
    that are still intact in the backup set?

A:  PKZIPFIX can be used to restore the .ZIP file index after
    the .ZIP files on each diskette have been concatenated into one
    .ZIP file.  Starting with the lowest number backup diskette
    (normally disk #001, PKZIP places the volume label PKBACK# nnn
    onto each disk, where nnn is the disk number), copy this file
    to your hard disk (or network disk).  For example, say the .ZIP
    filename for the backup set is BACK1.ZIP, on drive B:.  Enter:

      copy b:back1.zip

    Then, insert each diskette in ascending numerical order and enter:

      copy/b back1.zip+b:back1.zip

    After you have gone through the all the disks in the backup set,
    then use PKZIPFIX on this file by entering:

      pkzipfix back1

    This will create the file PKFIXED.ZIP which can then be extracted 
    by PKUNZIP.  Any files that were on missing or damaged diskettes 
    will most likely have errors, but any files that were wholly 
    contained on intact diskettes should be extractable.  This 
    procedure will also work on a subset of the backup set, if for 
    example, you only wanted to recover the files on disks 10 through 15.


Q:  When is it valid to use a '-' or '+' switch at the end of a option?

A:  With PKZIP and PKUNZIP certain options may be followed by a
    trailing - or + to modify the original option.  The basic rule to
    follow in knowing whether a - or + will effect the original option
    is, if the option can be modified in the PKZIP.CFG file, then
    a - or + will effect it.

    Below is a list of options that can be affected by a trailing '-'
    symbol.  As always consult your manual for more information about
    individual switches.


	       OPTION           MEANING
	       ------           -------
		-i-             Do not clear the archive attribute
		-k-             Override ZIPDATE=KEEP in pkzip.cfg
		-m-             Do not remove directories after compression
		-o-             Override ZIPDATE=LATEST in pkzip.cfg
		-p-             Override PATHS=ALL or PATHS=RECURSE
		-q-             Override ANSI=ENABLED
		-r-             Override RECURSE=ON
		-(-             Override SLOWMEMCPY=ON
		-&f-            Override FORMAT=ON
		-&l-            Override BACKUP=LOW
		-&s-            Override BACKUP=FULL
		-&u-            Override BACKUP=UNCONDITIONAL
		-&v-            Override BACKUP=VERIFY
		-&w-            Override BACKUP=WIPE
		-&-             Turns off all BACKUP= options


    Here is a list of the options that can be modified by a trailing
    '+' symbol.


	       OPTION           MEANING
	       ------           -------
		-a+             Clear archive attributes for files archived
		-3+             Override 386=DISABLE
		-++             Override EMS=DISABLE
		--+             Override XMS=DISABLE
		-~+             Override NETWORK=DISABLE
		-)+             Override DPMI=DISABLE (also in PKUNZIP)


Q:  What is the difference between the PKZIP option -b and 
    the PKTMP= environment variable?

A:  PKZIP creates two different types of temporary files, and allows
    you to specify the location the location of these two types
    separately.  The two situations where PKZIP creates temp files
    are:

      *  When a file is being compressed by PKZIP
      *  When an existing .ZIP file is being modified

    When PKZIP is in the process of compressing a file, it might
    need to create a temporary file to store information that does
    not fit in memory.  PKZIP will create these temporary files
    in the directory pointed to by the PKTMP= environment variable,
    or in the current directory if this variable is not present.
    For example, the command:
    
      set pktmp=d:\
    
    will tell PKZIP to create these temporary files on the D:\ drive.
    In general, you can get the best performance from PKZIP by having
    PKTMP= point to a RAM disk or very fast disk in your system,
    unless you are creating or updating a .ZIP file on a Novell network
    drive (see the question regarding Netware support earlier in this
    document).

    When PKZIP updates an existing .ZIP file, it creates a new 
    temporary .ZIP file and copies files from the existing .ZIP file 
    or (re)compresses files into this new file.  If the PKZIP process 
    were to be interrupted in any way, the original .ZIP file is still 
    intact.
    
    Once the new .ZIP file is created, PKZIP deletes the old .ZIP file 
    and renames the new temporary .ZIP file to the original name.  
    This however requires that at least twice the size of the original 
    .ZIP file be free on the drive where the .ZIP file is.  If say you 
    had a 400K .ZIP file on a 720K diskette, you will get an 
    "insufficient disk space" error when trying to modify this .ZIP 
    file, even if you only wanted to add one small file.  The -b 
    option tells PKZIP to create the new temporary on a drive 
    different from where the original .ZIP file is located, and then 
    copy the new .ZIP file to the destination drive when done.  For 
    example:
    
      pkzip b:stuff *.bat -bc:
      
    Tells PKZIP to add the files *.BAT to the file B:STUFF.ZIP, and 
    create the new temporary .ZIP file on drive C:.  Using the -b 
    option slows down PKZIP, but allows you to update .ZIP files that 
    are larger than the available free space on a disk.


Q:  PKZIP/PKUNZIP 2.0 have several options for DPMI, EMS, XMS, 386,
    NETWARE, etc.  What are these things and why does PKZIP/PKUNZIP
    use them?

A:  DPMI stands for DOS Protected Mode Interface.  It is a facility
    that allows standard DOS programs to execute code in 32-bit
    protected mode, and have access to protected mode resources in
    the computer.  Protected mode code runs faster than corresponding
    real mode code.  PKZIP/PKUNZIP use DPMI to execute some code in
    protected mode for better speed.  With DPMI, PKZIP/PKUNZIP can run
    up to 25% faster or more using 32-bit protected mode code versus
    using 16-bit real mode code.

    EMS and XMS stand for Expanded Memory Specification and eXtended
    Memory Specification respectively.  These are implemented using a
    memory manager on an 80386 or 80486 CPU, or using memory management
    hardware on an 8088 or 80286 system.  EMS and XMS allows standard
    DOS programs to use memory outside of the conventional 640K memory
    space.  PKZIP/PKUNZIP will use this memory in order to allow the
    software to run in less conventional memory.  This is most useful
    when shelling out of other applications to run PKZIP or PKUNZIP
    and there is very little conventional memory free.

    PKZIP and PKUNZIP support 80386 and 80486 CPU's and has special
    code that takes advantages of these chips.  This code runs
    fastest in protected mode with DPMI (see above).  However, even
    when running in real mode PKZIP/PKUNZIP will use 32-bit code for
    better speed.  Using 32-bit code can allow PKZIP/PKUNZIP to run
    up to 10% faster or more compared to executing 16-bit code.

    PKZIP also is Novell Netware aware.  When creating or updating
    .ZIP files on a network drive, use of Novell functions can make
    PKZIP run several times faster than it would otherwise.  To get
    maximum performance when creating or updating a .ZIP file on
    a network drive, make sure that the PKTMP= environment variable
    points to a drive in the same server as the .ZIP file; or if you
    do not have the PKTMP= environment variable set, that the current
    directory is on a drive that is in the same server as the .ZIP file.


Q:  My PKZIP says it detects certain versions of DPMI, EMS, or XMS
    that are different than the version numbers for my memory manager
    or driver.  Why is this?

A:  There is a difference between the version number of a driver and 
    the version of the DPMI/EMS/XMS specification that it supports. 
    For example, QEMM version 6.02 supports version 3.00 of the XMS 
    specification and version 4.00 of the EMS specification.  QDPMI 
    version 1.01 supports version 0.90 of the DPMI specification. The 
    version of the specification supported affects what functions that 
    driver will support.  PKZIP/PKUNZIP display the version of the 
    specification supported, not the version of the memory manager or 
    driver that provides this support.


Q:  PKZIP/PKUNZIP display different DPMI/EMS/XMS versions when in
    Windows than outside of Windows.  Why is this?

A:  Windows provides its own support of DPMI, EMS and XMS, regardless
    of any memory managers or drivers loaded prior to running Windows.
    The specification versions supported by Windows may be different
    than those supported by memory managers or device drivers loaded
    prior to Windows, and hence PKZIP/PKUNZIP will display different
    specification versions inside of Windows than in DOS.

